Green average subtraction in image data

ABSTRACT

Embodiments provide a video camera that can be configured to highly compress video data in a visually lossless manner. The camera can be configured to transform blue, red, and/or green image data in a manner that enhances the compressibility of the data. The camera can be configured to transform at least a portion of the green image data in a manner that enhances the compressibility of the data. The data can then be compressed and stored in this form. This allows a user to reconstruct the red, blue, and/or green image data to obtain the original raw data or a modified version of the original raw data that is visually lossless when demosacied. Additionally, the data can be processed in a manner in which at least some of the green image elements are demosaiced first and then the red, blue, and/or some green elements are reconstructed based on values of the demosaiced green image elements.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority benefit under 35 U.S.C. §119(e) fromU.S. Provisional Application Nos. 61/764,821, filed Feb. 14, 2013, and61/778,325, filed Mar. 12, 2013. The disclosures of each of theforegoing applications are hereby incorporated by reference herein intheir entirety.

BACKGROUND Field of the Inventions

The present inventions are directed to digital cameras, such as thosefor capturing still or moving pictures, and more particularly, todigital cameras that compress image data.

SUMMARY

Although some currently available digital video cameras include highresolution image sensors, and thus output high resolution video, theimage processing and compression techniques used on board such camerasmay be too lossy and thus may eliminate too much raw image data to beacceptable in the high end portions of the market noted above. An aspectof at least one of the embodiments disclosed herein includes therealization that video quality that is acceptable for the higher endportions of the markets noted above, such as the major motion picturemarket, can be satisfied by cameras that can capture, compress and storeraw or substantially raw video data at cinema-quality resolution andframe rates, such as at a resolution of at least about 2 k or at leastabout 4 k, and at a frame rate of at least about 23 frames per second.Examples of compressed raw data compression systems and methods aredescribed in U.S. Pat. No. 8,174,560, which is incorporated by referencein its entirety herein.

Another aspect of various embodiments of the present disclosure includesthe realization that because the human eye is more sensitive to greenwavelengths than any other color, green image data based modification ofimage data output from an image sensor can be used to enhancecompressibility of the data, yet provide a high quality video image. Onesuch technique can include subtracting the magnitude of green lightdetected from the magnitudes of red and/or blue light detected prior tocompressing the data. For instance, as discussed further herein, redand/or blue image data in a mosaiced (e.g., Bayer pattern) image dataset can be modified based on green data in the mosaiced image data set.This can convert the red and/or blue image data into a more compressibleform.

A further aspect of various embodiments of the present disclosureincludes the realization that a first portion of the green image datamay be used to modify a second portion of the green image data toimprove compression. For example, mosaiced, raw image data (e.g., Bayerpattern image data or image data filtered using another type of colorfilter array [CFA]) may be composed of two green channels in addition toa red and a blue channel. As described above, green channel data may besubtracted from each of the blue and red channels to improvecompressibility of the image data with little or no visual loss.According to various embodiments, this improved compressibility ispossible, at least in part, because the color and/or intensity of thered and blue channels are correlated with the color and/or intensity ofgreen channels. Accordingly, subtracting green channel data from redand/or blue channel data according to the techniques described hereinmay de-correlate a portion of the color and/or intensity data, improvingcompressibility.

According to some implementations, green image data may be modifiedbased on other green image data, e.g., in order to improvecompressibility. For instance, for Bayer pattern data, the first greenchannel can be used to predict a second green channel. For instance,data of a first green channel may be subtracted from data of a secondgreen channel, and the difference or residual can be encoded, improvingcompressibility of the image data with little or no visual loss.Subtracting first green channel data from second green channel data mayalso improve compressibility as the first and second green channels maybe spatially correlated with one another. Accordingly, subtracting thefirst green channel data from the second green channel data may also atleast partially decorrelate the green image data, further improvingcompressibility. Moreover, green image data inherently contain more ofthe image detail than the red and blue planes. Embodiments describedherein at least partly evolved from the realization that, using acarefully designed algorithm such as any of the ones described herein,encoding one green channel using another green channel can be done toimprove compression, while still preserving an acceptable level of imagedetail to achieve cinema quality compressed raw image data. According tocertain implementations, this modification of the green image data canbe done in conjunction with any of the red/blue data modificationtechniques in order to further improve compressibility of the imagedata. In some other implementations, the green data modification is doneinstead of red/blue data modification.

Further, similar to the description above, the process of green imagedata subtraction from blue, red, and/or other green image data, can bereversed following application of lossy compression algorithms (e.g., atcompression ratios of at least 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12 to 1,or higher), depending on the embodiment. Moreover, the resulting systemand method incorporating such a technique can provide visually losslessvideo image data with enhanced compressibility of such video image data.

According to an embodiment, a method of compressing mosaiced color imagedata is disclosed comprising: accessing mosaiced color image dataacquired by one or more image sensors of a video camera, the mosaicedcolor image data comprising a plurality of picture element values foreach of a plurality of spatially interleaved color channels, thespatially interleaved color channels comprising a first green colorchannel, a second green color channel, a red color channel, and a bluecolor channel; transforming the second green color channel at leastpartly by, for each respective picture element of a plurality of pictureelements of the second green color channel, modifying an initial valuecorresponding to the respective picture element using a calculated valuederived from values of a plurality of picture elements of the firstgreen color channel that are in spatial proximity to the respectivepicture element; compressing the transformed second green color channel;and storing the transformed, compressed second green color in at leastone memory device of the video camera along with compressed versions ofthe first green color channel, the red color channel, and the blue colorchannel.

According to an aspect, said transforming comprises subtracting thecalculated value from the initial value.

According to another aspect, the calculated value comprises an averageof the values of the plurality of picture elements of the first greencolor channel that are in spatial proximity to the respective pictureelement.

According to yet another aspect, the plurality of picture elements ofthe first green color channel in spatial proximity to the respectivepicture element comprise at least two picture elements which arediagonally adjacent to the respective picture element.

According to another aspect, the at least two picture elements includefour picture elements of the first green color channel which arediagonally adjacent to the respective picture element.

According to yet another aspect, the plurality of picture elements ofthe first green color channel which are in spatial proximity to therespective picture element include at least two picture elements,further wherein the respective picture element is positioned between theat least two picture elements.

According to another aspect, the at least two picture elements includetwo picture elements which are diagonally opposite one another withrespect to the respective picture element.

According to yet another aspect, the at least two picture elementsinclude a first pair of picture elements which are diagonally oppositeone another with respect to the respective picture element and a secondpair of picture elements which are diagonally opposite one another withrespect to the respective picture element.

According to another aspect, the at least two picture elements arediagonally adjacent to the respective picture element.

According to yet another aspect, the plurality of picture elements ofthe first green color which are in spatial proximity to the respectivepicture element include at least three picture elements.

According to another aspect, the color image data is mosaiced accordingto a Bayer pattern.

According to yet another aspect, said transforming results in a spatialdecorrelation of the first green color channel from the second greencolor channel.

According to another aspect, the method further comprises compressingthe first green color channel and storing the compressed first greencolor channel in the at least one memory device.

According to yet another aspect, the method further comprises:transforming the red color channel by subtracting from respectivepicture element values of the red color channel a calculated valuederived from picture element values of one or more of the first greencolor channel and the second green color channel which are in spatialproximity to the respective picture element values of the red colorchannel; compressing the transformed red color channel; transforming theblue color channel by subtracting from respective picture element valuesof the blue color channel a calculated value derived from pictureelement values of one or more of the first green color channel and thesecond green color channel which are in spatial proximity to therespective picture element values of the blue color channel; compressingthe transformed blue color channel; and storing the transformed,compressed red and blue color channels in the at least one memorydevice.

According to another aspect, said transforming results in a spatialdecorrelation of one or more of the first and second green colorchannels from the red and blue color channels.

According to another embodiment, a video camera is disclosed comprising:at least one memory device; one or more image sensors configured toconvert light incident on the image sensor into color image data, thecolor image data mosaiced according to a pattern and comprising aplurality of picture element values for each of a plurality of spatiallyinterleaved color channels, the spatially interleaved color channelscomprising a first green color channel, a second green color channel, ared color channel, and a blue color channel; and an image processingmodule configured to: transform the second green color channel at leastpartly by, for each respective picture element of a plurality of pictureelements of the second green color channel, modifying an initial valuecorresponding to the respective picture element using a calculated valuederived from values of a plurality of picture elements of the firstgreen color channel that are in spatial proximity to the respectivepicture element; compress the transformed second green color channel;and store the transformed, compressed second green color in the memorydevice.

According to yet another embodiment, an apparatus for processingmosaiced color image data is disclosed comprising: at least one memorydevice; one or more processors; and an image processing module executingin the one or more processors and configured to: access color image datafrom the memory device, the color image data comprising a plurality ofpicture element values for each of a plurality of spatially interleavedcolor channels, the spatially interleaved color channels comprising afirst green color channel, a second green color channel, a red colorchannel, and a blue color channel; and transform the second green colorchannel at least partly by, for each respective picture element of aplurality of picture elements of the second green color channel,modifying an initial value corresponding to the respective pictureelement using a calculated value derived from values of a plurality ofpicture elements of the first green color channel that are in spatialproximity to the respective picture element; and compress thetransformed second green color channel.

According to another embodiment, a method of decoding color image datais disclosed comprising: accessing encoded color image data for a secondgreen color channel of a plurality of color channels of the color imagedata, wherein the encoded, color image data was encoded at least partlyby: transforming the second green color channel least partly by, foreach respective picture element of a plurality of picture elements ofthe second green color channel, modifying an initial value correspondingto the respective picture element using a calculated value derived fromvalues of a plurality of picture elements of a first green color channelof the plurality of color channels, the plurality of picture elements ofthe first green channel in spatial proximity to the respective pictureelement; and compressing the transformed second green color channel; anddecoding the accessed color image data for the second green colorchannel.

According to an aspect, the decoding comprises substantially reversingthe transform operation and performing a decompression operation.

According to another aspect, substantially reversing the transformoperation is performed after performing the decompression operation.

According to yet another aspect, substantially reversing the transformoperation is performed prior to performing the decompression operation.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a system that can includehardware and/or can be configured to perform methods for processingvideo image data in accordance with an embodiment.

FIG. 2 is an optional embodiment of a housing for the cameraschematically illustrated in FIG. 1, according to an embodiment.

FIG. 3 is a schematic layout of an image sensor having a Bayer PatternFilter that can be used with the system illustrated in FIG. 1, accordingto various embodiments.

FIG. 4 is a schematic block diagram of an image processing module thatcan be used in the system illustrated in FIG. 1, according to variousembodiments.

FIG. 5 is a schematic layout of the green image data from the greensensor cells of the image sensor of FIG. 3, according to variousembodiments.

FIG. 6 is a schematic layout of the remaining green image data of FIG. 5after an optional process of deleting some of the original green imagedata, according to various embodiments.

FIG. 7 is a schematic layout of the red, blue, and green image data ofFIG. 5 organized for processing in the image processing module of FIG.1, according to various embodiments.

FIG. 8 is a flowchart illustrating an image data transformationtechnique that can be used with the system illustrated in FIG. 1,according to various embodiments.

FIG. 8A is a flowchart illustrating a modification of the image datatransformation technique of FIG. 8 that can also be used with the systemillustrated in FIG. 1, according to various embodiments.

FIG. 9 is a schematic layout of blue image data resulting from an imagetransformation process of FIG. 8, according to various embodiments.

FIG. 10 is a schematic layout of red image data resulting from an imagetransformation process of FIG. 8, according to various embodiments.

FIG. 11 illustrates an exemplary optional transform that can be appliedto the image data for gamma correction, according to variousembodiments.

FIG. 12 is a flowchart of a control routine that can be used with thesystem of FIG. 1 to decompress and demosaic image data, according tovarious embodiments.

FIG. 12A is a flowchart illustrating a modification of the controlroutine of FIG. 12 that can also be used with the system illustrated inFIG. 1, according to various embodiments.

FIG. 13 is a schematic layout of green image data having beendecompressed and demosaiced according to the flowchart of FIG. 12,according to various embodiments.

FIG. 14 is a schematic layout of half of the original green image datafrom FIG. 13, having been decompressed and demosaiced according to theflowchart of FIG. 12, according to various embodiments.

FIG. 15 is a schematic layout of blue image data having beendecompressed according to the flowchart of FIG. 12, according to variousembodiments.

FIG. 16 is a schematic layout of blue image data of FIG. 15 having beendemosaiced according to the flowchart of FIG. 12, according to variousembodiments.

FIG. 17 shows an example of an application of an image transformationprocess involving green image data modification and includingneighboring pixel selection, according to various embodiments.

FIG. 18 is a flowchart illustrating an image data transformationtechnique involving the modification of green image data that can beused with the system illustrated in FIG. 1, according to variousembodiments.

FIG. 19 is an example of an application of an image transformationprocess including neighboring pixel selection, for image data at an edgeof an image, according to various embodiments.

FIG. 20 is a flowchart of a control routine that can be used with thesystem of FIG. 1 to decompress and reconstruct image data, according tovarious embodiments.

FIG. 21 illustrates an example subsystem for reversing an image datatransformation technique according to certain embodiments, according tovarious embodiments.

DETAILED DESCRIPTION

FIG. 1 is a schematic diagram of a camera having image sensing,processing, and compression modules, described in the context of a videocamera for moving pictures. The embodiments disclosed herein aredescribed in the context of a video camera having a single sensor devicewith a Bayer pattern filter because these embodiments have particularutility in this context. However, the embodiments and inventions hereincan also be applied to cameras having other types of image sensors(e.g., CMY Bayer as well as other non-Bayer patterns), other numbers ofimage sensors, operating on different image format types, and beingconfigured for still and/or moving pictures. For example, theembodiments disclosed herein may be performed on image data capturedusing a color filter array (CFA) having a Bayer pattern or a different,non-Bayer pattern. Thus, it is to be understood that the embodimentsdisclosed herein are exemplary but nonlimiting embodiments, and thus,the inventions disclosed herein are not limited to the disclosedexemplary embodiments.

With continued reference to FIG. 1, a camera 10 can include a body orhousing 12 configured to support a system 14 configured to detect,process, and optionally store and/or replay video image data. Forexample, the system 14 can include optics hardware 16, an image sensor18, an image processing module 20, a compression module 22, and astorage device 24. Optionally, the camera 10 can also include a monitormodule 26, a playback module 28, and a display 30.

FIG. 2 illustrates a nonlimiting exemplary embodiment of the camera 10.As shown in FIG. 2, the optics hardware 16 can be supported by thehousing 12 in a manner that leaves it exposed at its outer surface. Insome embodiments, the system 14 is supported within the housing 12. Forexample, the image sensor 18, image processing module 20, and thecompression module 22 can be housed within the housing 12. The storagedevice 24 can be mounted in the housing 12. Additionally, in someembodiments, the storage device 24 can be mounted to an exterior of thehousing 12 and connected to the remaining portions of the system 14through any type of known connector or cable. Additionally, the storagedevice 24 can be connected to the housing 12 with a flexible cable, thusallowing the storage device 24 to be moved somewhat independently fromthe housing 12. For example, with such a flexible cable connection, thestorage device 24 can be worn on a belt of a user, allowing the totalweight of the housing 12 to be reduced. Further, in some embodiments,the housing can include one or more storage devices 24 inside andmounted to its exterior. Additionally, the housing 12 can also supportthe monitor module 26, and playbook module 28. Additionally, in someembodiments, the display 30 can be configured to be mounted to anexterior of the housing 12.

The optics hardware 16 can be in the form of a lens system having atleast one lens configured to focus an incoming image onto the imagesensor 18. The optics hardware 16, optionally, can be in the form of amulti-lens system providing variable zoom, aperture, and focus.Additionally, the optics hardware 16 can be in the form of a lens socketsupported by the housing 12 and configured to receive a plurality ofdifferent types of lens systems for example, but without limitation, theoptics hardware 16 include a socket configured to receive various sizesof lens systems including a 50-100 millimeter (F2.8) zoom lens, an 18-50millimeter (F2.8) zoom lens, a 300 millimeter (F2.8) lens, 15 millimeter(F2.8) lens, 25 millimeter (F1.9) lens, 35 millimeter (F1.9) lens, 50millimeter (F1.9) lens, 85 millimeter (F1.9) lens, and/or any otherlens. As noted above, the optics hardware 16 can be configured such thatdespite which lens is attached thereto, images can be focused upon alight-sensitive surface of the image sensor 18.

The image sensor 18 can be any type of video sensing device, including,for example, but without limitation, CCD, CMOS, vertically-stacked CMOSdevices such as the Foveon® sensor, or a multi-sensor array using aprism to divide light between the sensors. In some embodiments, theimage sensor 18 can include a CMOS device having about 12 millionphotocells. However, other size sensors can also be used. In someconfigurations, camera 10 can be configured to record and/or outputvideo (e.g., compressed raw video) at “2 k” (e.g., 2048×1152 pixels), “4k” (e.g., 4,096×2,540 pixels), “4.5 k” horizontal resolution, “5 k”horizontal resolution (e.g., 5120×2700 pixels), “6 k” horizontalresolution (e.g., 6144×3160), or greater resolutions. In someembodiments, the camera can be configured to record compressed raw imagedata having a horizontal resolution of between at least any of theabove-recited resolutions. In further embodiments, the resolution isbetween at least one of the aforementioned values (or some value betweenthe aforementioned values) and about 6.5 k, 7 k, 8 k, 9 k, or 10 k, orsome value therebetween). As used herein, in the terms expressed in theformat of xk (such as 2 k and 4 k noted above), the “x” quantity refersto the approximate horizontal resolution. As such, “4 k” resolutioncorresponds to about 4000 or more horizontal pixels and “2 k”corresponds to about 2000 or more pixels. Using currently commerciallyavailable hardware, the sensor can be as small as about 0.5 inches (8mm), but it can be about 1.0 inches, or larger. Additionally, the imagesensor 18 can be configured to provide variable resolution byselectively outputting only a predetermined portion of the sensor 18.For example, the sensor 18 and/or the image processing module can beconfigured to allow a user to identify the resolution of the image dataoutput.

The camera 10 can also be configured to downsample and subsequentlyprocess the output of the sensor 18 to yield video output at 2K, 1080p,720p, or any other resolution. For example, the image data from thesensor 18 can be “windowed”, thereby reducing the size of the outputimage and allowing for higher readout speeds. However, other sizesensors can also be used. Additionally, the camera 10 can be configuredto upsample the output of the sensor 18 to yield video output at higherresolutions.

With reference to FIGS. 1 and 3, in some embodiments, the sensor 18 caninclude a Bayer pattern filter. As such, the sensor 18, by way of itschipset (not shown) outputs data representing magnitudes of red, green,or blue light detected by individual photocells of the image sensor 18.FIG. 3 schematically illustrates the Bayer pattern output of the sensor18. In some embodiments, for example, as shown in FIG. 3, the Bayerpattern filter has twice as many green elements as the number of redelements and the number of blue elements. The chipset of the imagesensor 18 can be used to read the charge on each element of the imagesensor and thus output a stream of values in the well-known RGB formatoutput.

With continued reference to FIG. 4, the image processing module 20optionally can be configured to format the data stream from the imagesensor 18 in any known manner. In some embodiments, the image processingmodule 20 can be configured to separate the green, red, and blue imagedata into three or four separate data compilations. For example, theimage processing module 20 can be configured to separate the red datainto one data element, the blue data into one blue data element, and thegreen data into one green data element. For example, with reference toFIG. 4, the image processing module 20 can include a red data processingmodule 32, a blue data image processing module 34, and a first greenimage data processing module 36.

As noted above, however, the Bayer pattern data illustrated in FIG. 3,has twice as many green pixels as the other two colors. FIG. 5illustrates a data component with the blue and red data removed, leavingonly the original green image data.

In some embodiments, the camera 10 can be configured to delete or omitsome of the green image data. For example, in some embodiments, theimage processing module 20 can be configured to delete ½ of the greenimage data so that the total amount of green image data is the same asthe amounts of blue and red image data. For example, FIG. 6 illustratesthe remaining data after the image processing module 20 deletes ½ of thegreen image data. In the illustrated embodiment of FIG. 6, the rows n−3,n−1, n+1, and n+3 have been deleted. This is merely one example of thepattern of green image data that can be deleted. Other patterns andother amounts of green image data can also be deleted.

In some alternatives, the camera 10 can be configured to delete ½ of thegreen image data after the red and blue image data has been transformedbased on the green image data. This optional technique is describedbelow following the description of the subtraction of green image datavalues from the other color image data.

Optionally, the image processing module 20 can be configured toselectively delete green image data. For example, the image processingmodule 20 can include a deletion analysis module (not shown) configuredto selectively determine which green image data to delete. For example,such a deletion module can be configured to determine if deleting apattern of rows from the green image data would result in aliasingartifacts, such as Moiré lines, or other visually perceptible artifacts.The deletion module can be further configured to choose a pattern ofgreen image data to delete that would present less risk of creating suchartifacts. For example, the deletion module can be configured to choosea green image data deletion pattern of alternating vertical columns ifit determines that the image captured by the image sensor 18 includes animage feature characterized by a plurality of parallel horizontal lines.This deletion pattern can reduce or eliminate artifacts, such as Moirélines, that might have resulted from a deletion pattern of alternatinglines of image data parallel to the horizontal lines detected in theimage.

However, this merely one exemplary, non-limiting example of the types ofimage features and deletion patterns that can be used by the deletionmodule. The deletion module can also be configured to detect other imagefeatures and to use other image data deletion patterns, such as forexample, but without limitation, deletion of alternating rows,alternating diagonal lines, or other patterns. Additionally, thedeletion module can be configured to delete portions of the other imagedata, such as the red and blue image data, or other image data dependingon the type of sensor used.

Additionally, the camera 10 can be configured to insert a data fieldinto the image data indicating what image data has been deleted. Forexample, but without limitation, the camera 10 can be configured toinsert a data field into the beginning of any video clip stored into thestorage device 24, indicating what data has been deleted in each of the“frames” of the video clip. In some embodiments, the camera can beconfigured to insert a data field into each frame captured by the sensor18, indicating what image data has been deleted. For example, in someembodiments, where the image processing module 20 is configured todelete ½ of the green image data in one deletion pattern, the data fieldcan be as small as a single bit data field, indicating whether or notimage data has been deleted. Since the image processing module 20 isconfigured to delete data in only one pattern, a single bit issufficient to indicate what data has been deleted.

In some embodiments, as noted above, the image processing module 20 canbe configured to selectively delete image data in more than one pattern.Thus, the image data deletion field can be larger, including asufficient number of values to provide an indication of which of theplurality of different image data deletion patterns was used. This datafield can be used by downstream components and or processes to determineto which spatial positions the remaining image data corresponds.

In some embodiments, the image processing module can be configured toretain all of the raw green image data, e.g., the data shown in FIG. 5.In such embodiments, the image processing module can include one or moregreen image data processing modules.

As noted above, in known Bayer pattern filters, there are twice as manygreen elements as the number of red elements and the number of blueelements. In other words, the red elements comprise 25% of the totalBayer pattern array, the blue elements corresponded 25% of the Bayerpattern array and the green elements comprise 50% of the elements of theBayer pattern array. Thus, in some embodiments, where all of the greenimage data is retained, the image processing module 20 can include asecond green data image processing module 38. As such, the first greendata image processing module 36 can process half of the green elementsand the second green image data processing module 38 can process theremaining green elements. However, the present inventions can be used inconjunction with other types of patterns, such as for example, butwithout limitation, CMY and RGBW.

FIG. 7 includes schematic illustrations of the red, blue and two greendata components processed by modules 32, 34, 36, and 38 (FIG. 4). Thiscan provide further advantages because the size and configuration ofeach of these modules can be about the same since they are handlingabout the same amount of data. Additionally, the image processing module20 can be selectively switched between modes in which is processes allof the green image data (by using both modules 36 and 38) and modeswhere ½ of the green image data is deleted (in which it utilizes onlyone of modules 36 and 38). However, other configurations can also beused.

Additionally, in some embodiments, the image processing module 20 caninclude other modules and/or can be configured to perform otherprocesses, such as, for example, but without limitation, gammacorrection processes, noise filtering processes, etc.

Additionally, in some embodiments, the image processing module 20 can beconfigured to subtract a value of a green element from a value of a blueelement and/or red element. As such, in some embodiments, when certaincolors are detected by the image sensor 18, the corresponding red orblue element can be reduced to zero. For example, in many photographs,there can be large areas of black, white, or gray, or a color shiftedfrom gray toward the red or blue colors. Thus, if the correspondingpixels of the image sensor 18 have sensed an area of gray, the magnitudeof the green, red, and blue, would be about equal. Thus, if the greenvalue is subtracted from the red and blue values, the red and bluevalues will drop to zero or near zero. Thus, in a subsequent compressionprocess, there will be more zeros generated in pixels that sense ablack, white, or gray area and thus the resulting data will be morecompressible. Additionally, the subtraction of green from one or both ofthe other colors can make the resulting image data more compressible forother reasons.

Such a technique can help achieve a higher effective compression ratioand yet remain visually lossless due to its relationship to the entropyof the original image data. For example, the entropy of an image isrelated to the amount of randomness in the image. The subtraction ofimage data of one color, for example, from image data of the othercolors can reduce the randomness, and thus reduce the entropy of theimage data of those colors, thereby allowing the data to be compressedat higher compression ratios with less loss. Typically, an image is nota collection of random color values. Rather, there is often a certaindegree of correlation between surrounding picture elements. Thus, such asubtraction technique can use the correlation of picture elements toachieve better compression. The amount of compression will depend, atleast in part, on the entropy of the original information in the image.

In some embodiments, the magnitudes subtracted from a red or blue pixelcan be the magnitude of the value output from a green pixel adjacent tothe subject red or blue pixel. Further, in some embodiments, the greenmagnitude subtracted from the red or blue elements can be derived froman average of the surrounding green elements. Such techniques aredescribed in greater detail below. However, other techniques can also beused.

Optionally, the image processing module 20 can also be configured toselectively subtract green image data from the other colors. Forexample, the image processing module 20 can be configured to determineif subtracting green image data from a portion of the image data ofeither of the other colors would provide better compressibility or not.In this mode, the image processing module 20 can be configured to insertflags into the image data indicating what portions of the image data hasbeen modified (by e.g., green image data subtraction) and which portionshave not been so modified. With such flags, a downstreamdemosaicing/reconstruction component can selectively add green imagevalues back into the image data of the other colors, based on the statusof such data flags.

Optionally, image processing module 20 can also include a further datareduction module (not shown) configured to round values of the red andblue data. For example, if, after the subtraction of green magnitudes,the red or blue data is near zero (e.g., within one or two on an 8-bitscale ranging from 0-255 or higher magnitudes for a higher resolutionsystem). For example, the sensor 18 can be a 12-bit sensor outputtingred, blue, and green data on a scale of 0-4095. Any rounding orfiltering of the data performed the rounding module can be adjusted toachieve the desired effect. For example, rounding can be performed to alesser extent if it is desired to have lossless output and to a greaterextent if some loss or lossy output is acceptable. Some rounding can beperformed and still result in a visually lossless output. For example,on a 8-bit scale, red or blue data having absolute value of up to 2 or 3can be rounded to 0 and still provide a visually lossless output.Additionally, on a 12-bit scale, red or blue data having an absolutevalue of up to 10 to 20 can be rounded to 0 and still provide visuallylossless output.

Additionally, the magnitudes of values that can be rounded to zero, orrounded to other values, and still provide a visually lossless outputdepends on the configuration of the system, including the opticshardware 16, the image sensor 18, the resolution of the image sensor,the color resolution (bit) of the image sensor 18, the types offiltering, anti-aliasing techniques or other techniques performed by theimage processing module 20, the compression techniques performed by thecompression module 22, and/or other parameters or characteristics of thecamera 10.

As noted above, in some embodiments, the camera 10 can be configured todelete ½ of the green image data after the red and blue image data hasbeen transformed based on the green image data. For example, but withoutlimitation, the processor module 20 can be configured to delete ½ of thegreen image data after the average of the magnitudes of the surroundinggreen data values have been subtracted from the red and blue datavalues. This reduction in the green data can reduce throughputrequirements on the associated hardware. Additionally, the remaininggreen image data can be used to reconstruct the red and blue image data,described in greater detail below with reference to FIGS. 14 and 16.

As noted above, the camera 10 can also include a compression module 22.The compression module 22 can be in the form of a separate chip or itcan be implemented with software and another processor. For example, thecompression module 22 can be in the form of a commercially availablecompression chip that performs a compression technique in accordancewith the JPEG 2000 standard, or other compression techniques. In someembodiments, the image processing module 20 and/or the compressionmodule 22 are implemented in a field-programmable gate array (FPGA), anapplication-specific integrated circuit (ASIC), combinations of the sameor the like.

The compression module 22 can be configured to perform any type ofcompression process on the data from the image processing module 20. Insome embodiments, the compression module 22 performs a compressiontechnique that takes advantage of the techniques performed by the imageprocessing module 20. For example, as noted above, the image processingmodule 20 can be configured to reduce the magnitude of the values of thered and blue data by subtracting the magnitudes of green image data,thereby resulting in a greater number of zero values, as well as othereffects. Additionally, the image processing module 20 can perform amanipulation of raw data that uses the entropy of the image data. Thus,the compression technique performed by the compression module 22 can beof a type that benefits from the presence of larger strings of zeros toreduce the size of the compressed data output therefrom.

Further, the compression module 22 can be configured to compress theimage data from the image processing module 20 to result in a visuallylossless output. For example, firstly, the compression module can beconfigured to apply any known compression technique, such as, butwithout limitation, JPEG 2000, MotionJPEG, any DCT based codec, anycodec designed for compressing RGB image data, H.264, MPEG4, Huffman, orother techniques.

Depending on the type of compression technique used, the variousparameters of the compression technique can be set to provide a visuallylossless output. For example, many of the compression techniques notedabove can be adjusted to different compression rates, wherein whendecompressed, the resulting image is better quality for lowercompression rates and lower quality for higher compression rates. Thus,the compression module can be configured to compress the image data in away that provides a visually lossless output, or can be configured toallow a user to adjust various parameters to obtain a visually losslessoutput. For example, the compression module 22 can be configured tocompress the image data at a compression ratio of about 6:1, 7:1, 8:1 orgreater. In some embodiments, the compression module 22 can beconfigured to compress the image data to a ratio of 12:1 or higher.

Additionally, the compression module 22 can be configured to allow auser to adjust the compression ratio achieved by the compression module22. For example, the camera 10 can include a user interface that allowsa user to input commands that cause the compression module 22 to changethe compression ratio. Thus, in some embodiments, the camera 10 canprovide for variable compression.

As used herein, the term “visually lossless” is intended to includeoutput that, when compared side by side with original (never compressed)image data on the same display device, one of ordinary skill in the artwould not be able to determine which image is the original with areasonable degree of accuracy, based only on a visual inspection of theimages.

With continued reference to FIG. 1, the camera 10 can also include astorage device 24. The storage device can be in the form of any type ofdigital storage, such as, for example, but without limitation, harddisks, flash memory, or any other type of memory device. In someembodiments, the size of the storage device 24 can be sufficiently largeto store image data from the compression module 22 corresponding to atleast about 30 minutes of video at 12 mega pixel resolution, 12-bitcolor resolution, and at 60 frames per second. However, the storagedevice 24 can have any size.

In some embodiments, the storage device 24 can be mounted on an exteriorof the housing 12. Further, in some embodiments, the storage device 24can be connected to the other components of the system 14 throughstandard communication ports, including, for example, but withoutlimitation, IEEE 1394, USB 2.0, IDE, SATA, etc. Further, in someembodiments, the storage device 24 can comprise a plurality of harddrives operating under a RAID protocol. However, any type of storagedevice can be used.

With continued reference to FIG. 1, as noted above, in some embodiments,the system can include a monitor module 26 and a display device 30configured to allow a user to view video images captured by the imagesensor 18 during operation. In some embodiments, the image processingmodule 20 can include a subsampling system configured to output reducedresolution image data to the monitor module 26. For example, such asubsampling system can be configured to output video image data tosupport 2K, 1080p, 720p, or any other resolution. In some embodiments,filters used for demosaicing can be adapted to also perform downsamplingfiltering, such that downsampling and filtering can be performed at thesame time. The monitor module 26 can be configured to perform any typeof demosaicing process to the data from the image processing module 20.Thereafter, the monitor module 26 can output a demosaiced image data tothe display 30.

The display 30 can be any type of monitoring device. For example, butwithout limitation, the display 30 can be a four-inch LCD panelsupported by the housing 12. For example, in some embodiments, thedisplay 30 can be connected to an infinitely adjustable mount configuredto allow the display 30 to be adjusted to any position relative to thehousing 12 so that a user can view the display 30 at any angle relativeto the housing 12. In some embodiments, the display 30 can be connectedto the monitor module through any type of video cables such as, forexample, an RGB or YCC format video cable.

Optionally, the playback module 28 can be configured to receive datafrom the storage device 24, decompressed and demosaic the image data andthen output the image data to the display 30. In some embodiments, themonitor module 26 and the playback module 28 can be connected to thedisplay through an intermediary display controller (not shown). As such,the display 30 can be connected with a single connector to the displaycontroller. The display controller can be configured to transfer datafrom either the monitor module 26 or the playback module 28 to thedisplay 30.

FIG. 8 includes a flowchart 50 illustrating the processing of image databy the camera 10. In some embodiments, the flowchart 50 can represent acontrol routine stored in a memory device, such as the storage device24, or another storage device (not shown) within the camera 10.Additionally, a central processing unit (CPU) (not shown) can beconfigured to execute the control routine. The below description of themethods corresponding to the flow chart 50 are described in the contextof the processing of a single frame of video image data. Thus, thetechniques can be applied to the processing of a single still image.These processes can also be applied to the processing of continuousvideo, e.g., frame rates of greater than 12, as well as frame rates of20, 23.98, 24, 25, 29.97, 30, 47.96, 48, 50, 59.94, 60, 120, 250, framesper second, or other frame rates between these frame rates or greater.

With continued reference to FIG. 8, control routine can begin atoperation block 52. In the operation block 52, the camera 10 can obtainsensor data. For example, with reference to FIG. 1, the image sensor 18,which can include a Bayer Sensor and chipset, can output image data.

For example, but without limitation, with reference to FIG. 3, the imagesensor can comprise a CMOS device having a Bayer pattern filter on itslight receiving surface. Thus, the focused image from the opticshardware 16 is focused on the Bayer pattern filter on the CMOS device ofthe image sensor 18. FIG. 3 illustrates an example of the Bayer patterncreated by the arrangement of Bayer pattern filter on the CMOS device.

In FIG. 3, column m is the fourth column from the left edge of the Bayerpattern and row n is the fourth row from the top of the pattern. Theremaining columns and rows are labeled relative to column m and row n.However, this layout is merely chosen arbitrarily for purposes ofillustration, and does not limit any of the embodiments or inventionsdisclosed herein.

As noted above, known Bayer pattern filters often include twice as manygreen elements as blue and red elements. In the pattern of FIG. 5, blueelements only appear in rows n−3, n−1, n+1, and n+3. Red elements onlyappear in rows n−2, n, n+2, and n+4. However, green elements appear inall rows and columns, interspersed with the red and blue elements.

Thus, in the operation block 52, the red, blue, and green image dataoutput from the image sensor 18 can be received by the image processingmodule 20 and organized into separate color data components, such asthose illustrated in FIG. 7. As shown in FIG. 7, and as described abovewith reference to FIG. 4, the image processing module 20 can separatethe red, blue, and green image data into four separate components. FIG.7 illustrates two green components (Green 1 and Green 2), a bluecomponent, and a red component. However, this is merely one exemplaryway of processing image data from the image sensor 18. Additionally, asnoted above, the image processing module 20, optionally, can arbitrarilyor selectively delete ½ of the green image data.

After the operation block 52, the flowchart 50 can move on to operationblock 54. In the operation block 54, the image data can be furtherprocessed. For example, optionally, any one or all of the resulting data(e.g., green 1, green 2, the blue image data from FIG. 9, and the redimage data from FIG. 10) can be further processed.

For example, the image data can be pre-emphasized or processed in otherways. In some embodiments, the image data can be processed to be more(mathematically) non-linear. Some compression algorithms benefit fromperforming such a linearization on the picture elements prior tocompression. However, other techniques can also be used. For example,the image data can be processed with a linear curve, which providesessentially no emphasis.

For instance, the image data may represent linear light sensor data, andthe pre-emphasis curve can be designed to preserve detail in darkerregions upon application of the compression algorithm. For instance, thepre-emphasis function can be designed emphasize darker image data valuesin comparison to brighter image data values, e.g., by applying a logcurve or other appropriate function that weights darker image datavalues higher than brighter image data values. In some cases, thepre-emphasis curve may cause some reduction in precision in highlightsor other relatively brighter image regions while preserving detail inshadows or other darker image regions. In some embodiments, theoperation block 54 can process the image data using curve defined by thefunction y=x^0.5. In some embodiments, this curve can be used where theimage data was, for example but without limitation, floating point datain the normalized 0-1 range. In other embodiments, for example, wherethe image data is 12-bit data, the image can be processed with the curvey=(x/4095)^0.5. Additionally, the image data can be processed with othercurves, such as y=(x+c)^g where 0.01<g<1 and c is an offset, which canbe 0 in some embodiments. Additionally, log curves can also be used. Forexample, curves in the form y=A*log(B*x+C) where A, B, and C areconstants chosen to provide the desired results. The pre-emphasis curveaccording to certain embodiments does not reduce the bit depth of theimage data. Additionally, the above curves and processes can be modifiedto provide more linear areas in the vicinity of black, similar to thosetechniques utilized in the well-known Rec709 gamma curve. In applyingthese processes to the image data, the same processes can be applied toall of the image data, or different processes can be applied to thedifferent colors of image data. However, these are merely exemplarycurves that can be used to process the image data, or curves ortransforms can also be used. Additionally, these processing techniquescan be applied using mathematical functions such as those noted above,or with Look Up Tables (LUTs). Additionally, different processes,techniques, or transforms can be used for different types of image data,different ISO settings used during recording of the image data,temperature (which can affect noise levels), etc.

After the operation block 54, the flowchart 50 can move to an operationblock 56. In the operation block 56, the red and blue picture elementscan be transformed. For example, as noted above, green image data can besubtracted from each of the blue and red image data components. In someembodiments, a red or blue image data value can be transformed bysubtracting a green image data value of at least one of the greenpicture elements adjacent to the red or blue picture element. In someembodiments, an average value of the data values of a plurality ofadjacent green picture elements can be subtracted from the red or blueimage data value. For example, but without limitation, average values of2, 3, 4, or more green image data values can be calculated andsubtracted from red or blue picture elements in the vicinity of thegreen picture elements.

For example, but without limitation, with reference to FIG. 3, the rawoutput for the red element R_(m−2,n−2) (also referred to as the “target”pixel or element) is surrounded by four green picture elementsG_(m−2,n−3), G_(m−1,n−2), G_(m−3,n−2), and G_(m−2,n−1). Thus, the redelement R_(m−2,n−2) can be transformed by subtracting the average of thevalues of the green elements surrounding the target element as follows:R _(m,n) =R _(m,n)−(G _(m,n−1) +G _(m+1,n) +G _(m,n+1) +G_(m−1,n))/4  (1)

Similarly, the blue elements can be transformed in a similar manner bysubtracting the average of the green elements surrounding the bluetarget element as follows:B _(m+1,n+1) =B _(m+1,n+1)−(G _(m+1,n) +G _(m+2,n+1) +G _(m+1,n+2) +G_(m,n+1))/4  (2)

FIG. 9 illustrates a resulting blue data component where the originalblue raw data B_(m−1,n−1) (e.g., the target pixel) is transformed, thenew value labeled as B′_(m−1,n−1) (only one value in the component isfilled in and the same technique can be used for all the blue elements).Similarly, FIG. 10 illustrates the red data component having beentransformed in which the transformed red element R_(m−2,n−2) (e.g., thetarget pixel) is identified as R′_(m−2,n−2). The mathematical processperformed on the data are entirely reversible such that all of theoriginal values can be obtained by reversing those processes.

With continued reference to FIG. 8, after the operation block 56, theflowchart 50 can move on to an operation block 58. In the operationblock 58, the resulting data, which is raw or can be substantially raw,can be further compressed to using any known compression algorithm andwhich is according to various implementations a lossy compressionalgorithm (e.g., a compression algorithm capable of achievingcompression ratios of at least 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12 to 1,or higher). For example, the compression module 22 (FIG. 1) can beconfigured to perform such a compression algorithm. After compression,the compressed raw data can be stored in the storage device 24 (FIG. 1).According to certain embodiments, the term “raw” as used herein inconjunction with compressed image data remains mosaiced (e.g., accordingto a Bayer pattern or is mosaiced according to some other color filterarray) and has therefore not undergone a demosaicing operation prior tocompression. According to various implementations, the term “raw” canindicate that the image data has not undergone any combination of one ormore of the following operations prior to compression: demosaicing(sometimes alternatively referred to as “color interpolation”), colorcorrection (sometimes alternatively referred to as “color compensation”or “color matrix processing”), tonal processing (e.g., application oftonal curves, contrast enhancement), gamma processing (sometimesalternatively referred to as “gamma correction”) prior to compression.

In various embodiments, the flowchart 50 of FIG. 8 may further includeone or more denoising and/or noise reduction operation blocks. Forexample, a denoising operation block may be included after thetransforming of operation block 56. For example, the denoising step caninclude noise removal techniques, such as spatial denoising where asingle image frame is used for noise suppression in a pixel or pictureelement. Temporal denoising methods that use multiple image frames fornoise correction can also be employed, including motion adaptive,semi-motion adaptive, or motion compensative methods. Additionally,other noise removal methods can be used to remove noise from images or avideo signal. Various example noise removal techniques are described indetail in U.S. Provisional Application 61/764,821 (the '821Application“) and U.S. Pat. No. 8,237,830 (the '830 patent”), which areincorporated by reference herein in their entirety.

In some embodiments, a denoising stage may occur before compression inoperation block 58. Removing noise from data prior to compression can beadvantageous because it can greatly improve the effectiveness of thecompression process. In some embodiments, noise removal can be done aspart of the compression process in operation block 58.

In various embodiments, a denoising stage can occur at numerous pointsin the image data transformation process. For example, denoising can beapplied after operation block 52 to raw image data from an image sensorprior to transformation; or to Bayer pattern (or other mosaiced) dataafter the transformation in operation block 56. In some embodiments,denoising can be applied before or after the pre-emphasis of data thatoccurs in operation block 54. Of note, denoising data beforepre-emphasis can be advantageous because denoising can operate moreeffectively on perceptually linear data. In addition, in exemplaryembodiments, green image data can be denoised before operation block 56to minimize noise during the transformation process of red and bluepicture elements in operation block 56.

FIG. 8A illustrates a modification of the flowchart 50, identified bythe reference numeral 50′. Some of the steps described above withreference to the flowchart 50 can be similar or the same as some of thecorresponding steps of the flowchart 50′ and thus are identified withthe same reference numerals.

As shown in FIG. 8A, the flowchart 50′, in some embodiments, canoptionally omit operation block 54. In some embodiments, the flowchart50′ can also include an operation block 57 in which a look up table canbe applied to the image data. For example, an optional look-up table,represented by the curve of FIG. 11, can be used to enhance furthercompression. In some embodiments, the look-up table of FIG. 11 is onlyused for the green picture elements. In other embodiments, the look-uptable can also be used for red and blue picture elements. The samelook-up table may be used for the three different colors, or each colormay have its own look-up table. Additionally, processes other than thatrepresented by the curve of FIG. 11 can also be applied.

Additionally, as described above with respect to FIG. 8, an additionaldenoising operation may be included in the flowchart 50′ of FIG. 8A.Examples of various denoising and noise reduction techniques may befound in the '821 Application and the '830 patent incorporated byreference herein in their entirety.

By processing the image data in the manner described above withreference to FIGS. 8 and 8A, it has been discovered that the image datafrom the image sensor 18 can be compressed into compressed raw imagedata by a compression ratio of 6 to 1 or greater and remain visuallylossless. Additionally, although the image data has been transformed(e.g., by the subtraction of green image data), the transformation isreversible. Moreover, the compressed image data according to certainimplementations is still raw. For example, the compressed raw data canbe decompressed and gamma processed, color corrected, tonally processedand/or demosaiced using any process the user desires.

For example, with reference to FIG. 12, the data stored in the storagedevice 24 can be decompressed and demosaiced. Optionally, the camera 10can be configured to perform the method illustrated by flowchart 60. Forexample, but without limitation, the playback module 28 can beconfigured to perform the method illustrated by flowchart 60. However, auser can also transfer the data from the storage device 24 into aseparate workstation and apply any or all of the steps and/or operationsof the flowchart 60.

With continued reference to FIG. 12, the flowchart 60 can begin with theoperation block 62, in which the data from the storage device 24 isdecompressed. For example, the decompression of the data in operationblock 62 can be the reverse of the compression algorithm performed inoperational block 58 (FIG. 8). After the operation block 62, theflowchart 60 can move on to an operation block 64.

In the operation block 64, a process performed in operation block 56(FIG. 8) can be reversed. For example, the inverse of the curve of FIG.11 or the inverse of any of the other functions described above withreference to operation block 56 of FIGS. 8 and 8A, can be applied to theimage data. After the operation block 64, the flowchart 60 can move onto a step 66.

In the operation block 66, the green picture elements can be demosaiced.For example, as noted above, all the values from the data componentsGreen 1 and/or Green 2 (FIG. 7) can be stored in the storage device 24.For example, with reference to FIG. 5, the green image data from thedata components Green 1, Green 2 can be arranged according to theoriginal Bayer pattern applied by the image sensor 18. The green datacan then be further demosaiced by any known technique, such as, forexample, linear interpolation, bilinear, etc.

FIG. 13 illustrates an exemplary layout of green image data demosaicedfrom all of the raw green image data. The green image elementsidentified with the letter G_(x) represent original raw (decompressed)image data and the elements identified with “DG_(x)” represent elementsthat were derived from the original data through the demosaic process.This nomenclature is used with regard to the below descriptions of thedemosaicing process for the other colors. FIG. 14 illustrates anexemplary image data layout for green image data demosaiced from ½ ofthe original green image data.

With continued reference to FIG. 12, the flowchart 60 can, after theoperation block 66, move on to an operation block 68. In the operationblock 68, the demosaiced green image data can be further processed. Forexample, but without limitation, noise reduction techniques can beapplied to the green image data. As described above with respect to FIG.8, examples of various denoising and noise reduction techniques may befound in the '821 Application and the '830 patent incorporated byreference herein in their entirety. However, any other image processingtechnique, such as anti-aliasing techniques, can also be applied to thegreen image data. After the operation block 68, the flowchart 60 canmove on to an operation block 70.

In the operation block 70, the red and blue image data can bedemosaiced. For example, firstly, the blue image data of FIG. 9 can berearranged according to the original Bayer pattern (FIG. 15). Thesurrounding elements, as shown in FIG. 16, can be demosaiced from theexisting blue image data using any known demosaicing technique,including linear interpolation, bilinear, etc. As a result ofdemosaicing step, there will be blue image data for every pixel as shownin FIG. 16. However, this blue image data was demosaiced based on themodified blue image data of FIG. 9, i.e., blue image data values fromwhich green image data values were subtracted.

The operation block 70 can also include a demosaicing process of the redimage data. For example, the red image data from FIG. 10 can berearranged according to the original Bayer pattern and furtherdemosaiced by any known demosaicing process such as linearinterpolation, bilinear, etc.

After the operation block 70, the flowchart can move on to an operationblock 72. In the operation block 72, the demosaiced red and blue imagedata can be reconstructed from the demosaiced green image data.

In some embodiments, each of the red and blue image data elements can bereconstructed by adding in the green value from co-sited green imageelement (the green image element in the same column “m” and row “n”position). For example, after demosaicing, the blue image data includesa blue element value DB_(m−2,n−2). Because the original Bayer pattern ofFIG. 3 did not include a blue element at this position, this blue valueDB_(m−2,n−2) was derived through the demosaicing process noted above,based on, for example, blue values from any one of the elementsB_(m−3,n−3), B_(m−1,n−3), B_(m−3,n−1), and B_(m−1,n−1) or by any othertechnique or other blue image elements. As noted above, these valueswere modified in operation block 54 (FIG. 8) and thus do not correspondto the original blue image data detected by the image sensor 18. Rather,an average green value had been subtracted from each of these values.Thus, the resulting blue image data DB_(m−2,n−2) also represents bluedata from which green image data has been subtracted. Thus, in oneembodiment, the demosaiced green image data for element DG_(m−2,n−2) canbe added to the blue image value DB_(m−2,n−2) thereby resulting in areconstructed blue image data value.

In some embodiments, optionally, the blue and/or red image data canfirst be reconstructed before demosaicing. For example, the transformedblue image data B′_(m−1,n−1) can be first reconstructed by adding theaverage value of the surrounding green elements. This would result inobtaining or recalculating the original blue image data B_(m−1,n−1).This process can be performed on all of the blue image data.Subsequently, the blue image data can be further demosaiced by any knowndemosaicing technique. The red image data can also be processed in thesame or similar manners.

FIG. 12A illustrates a modification of the flowchart 60, identified bythe reference numeral 60′. Some of the steps described above withreference to the flowchart 60 can be similar or the same as some of thecorresponding steps of the flowchart 60′ and thus are identified withthe same reference numerals.

As shown in FIG. 12A, the flow chart 60′ can include the operation block68′ following operation block 62. In operation block 68′, a noisereduction technique can be performed on the image data. For example, butwithout limitation, noise reduction techniques can be applied to thegreen image data. As described above with respect to FIG. 8, examples ofvarious denoising and noise reduction techniques may be found in the'821 Application and the '830 patent incorporated by reference herein intheir entirety. However, any other image processing technique, such asanti-aliasing techniques, can also be applied to the green image data.After operation block 68′, the flow chart can move on to operation block70′

In operation block 70′, the image data can be demosaiced. In thedescription set forth above with reference to operation blocks 66 and70, the green, red, and blue image data can be demosacied in two steps.However, in the present flow chart 60′, the demosaicing of all threecolors of image data is represented in a single step, although the samedemosaicing techniques described above can be used for this demosaicingprocess. After the operation block 70′, the flow chart can move on tooperation block 72, in which the red and blue image data can bereconstructed, and operation block 64 in which an inverse look-up tablecan be applied.

After the image data has been decompressed and processed according toeither of the flow charts 70 or 70′, or any other suitable process, theimage data can be further processed as demosaiced image data.

By demosaicing the green image data before reconstructing the red andblue image data, certain further advantages can be achieved. Forexample, as noted above, the human eye is more sensitive to green light.Demosiacing and processing the green image data optimize the green imagevalues, to which the human eye is more sensitive. Thus, the subsequentreconstruction of the red and blue image data will be affected by theprocessing of the green image data.

Additionally, Bayer patterns have twice as many green elements as redand blue elements. Thus, in embodiments where all of the green data isretained, there is twice as much image data for the green elements ascompared to either the red or blue image data elements. Thus, thedemosaicing techniques, filters, and other image processing techniquesresult in a better demosaiced, sharpened, or otherwise filtered image.Using these demosaiced values to reconstruct and demosaic the red andblue image data transfers the benefits associated with the higherresolution of the original green data to the process, reconstruction,and demosaicing of the red and blue elements. As such, the resultingimage is further enhanced.

Further, as described above, green channel data may be subtracted fromeach of the blue and red channels to improve compressibility of theimage data with little or no visual loss. According to variousembodiments, this advantageous improved compressibility is possible, atleast in part, because the color and/or intensity of the red and bluechannels are correlated with the color and/or intensity of greenchannels. Accordingly, subtracting green channel data from red and/orblue channel data may de-correlate a portion of the color and/orintensity data, improving compressibility.

Green Average Subtraction

Referring again to FIGS. 1 and 4, the image processing module 20 can beconfigured to modify image data based on green image data, such as bymodifying Green 2 image data based on Green 1 image data or vice versa,and/or modifying Red and Blue image data based on Green image data. Forinstance, the image processing module 20 could be configured to computean average green value from a neighborhood, or “kernel,” of Greenpixels. For example, in various embodiments the image processing module20 may determine multiple Green pixels located near, or adjacent to, acurrent pixel of interest (also referred to as a target pixel). Thesedetermined Green pixels may be referred to as the kernel of Greenpixels. Green pixels adjacent to a target pixel (for example, the kernelassociated with the target pixel) may include Green pixels located aboveor below, beside, and/or diagonal to, the target pixel. For example, theGreen pixels adjacent to the target pixel may include some or all of theGreen pixels that are physically nearest to the target pixel.

In some cases, the calculated green value is spatially co-located orspatially correlated with the target pixel. For instance, values for atleast two pixels opposing one another with respect to the target pixelmay be averaged or combined using some other appropriate type ofalgorithm to generate the calculated green value. For instance, at leasttwo pixels may include pixels diagonally opposing one another withrespect to the target pixel, pixels above and below the target pixel,pixels to the left and right of the target pixel, or a combinationthereof.

In various implementations, Green pixels located a further distance fromthe target pixel may be used to generate the calculated green value(e.g., calculate an average green value). The calculated green value maybe used to perform GAS (Green Average Subtraction), in which the averagegreen value calculated with respect to a target pixel may be subtractedfrom the target pixel. For example, in GAS, average green values may besubtracted from pixels in the Red/Blue data path and/or one of the Greendata paths.

For example, the image processing module 20 may compute a 4-pixelaverage of a kernel of pixels (e.g., defect corrected and noise reducedpixels) which may include an average Green value relative to anyparticular pixel (e.g., a target pixel). Neighboring Green pixels (or akernel of Green pixels) to be averaged may be selected based on whetheran even row is being processed or an odd row is being processed, as wellas whether a Red, Blue, or Green pixel is a target pixel. For example,referring again to FIG. 3, when the target pixel is the Red pixelR_(m,n), the four neighboring pixels may include G_(m,n−1), G_(m+1,n),G_(m,n+1), and G_(m−1,n). Similarly, when the target pixel is Blue pixelB_(m−1,n−1), the four neighboring pixels may include G_(m−1,n−2),G_(m,n−1), G_(m−1,n), and G_(m−2,n−1). In each of these examples, whenthe target pixel is a Red or Blue pixel, the four neighboring pixels mayinclude Green pixels immediately adjacent to the target pixel, forexample, the pixels above and below and immediately on either side ofthe Red/Blue pixel.

Referring to FIG. 17, an example of neighboring, or kernel, pixelselection is shown with respect to a Green target pixel, according tovarious embodiments. As shown, and as described above, each alternatingrow of image data may include Green1 channel or Green2 channel imagedata/pixels. As mentioned above, in various embodiments it may beadvantageous to subtract or otherwise modify Green2 data based on Green1data (or vice versa, depending on the embodiment), for example, toperform GAS on Green 2 data. For instance, in some embodiments anaverage of a kernel of Green1 data may be subtracted from Green2 data(or vice versa), as is described further below. As one example, theimage processing module 20 can be configured to compute a 4-pixelaverage of defect corrected and noise reduced pixels of Green1 data fora given pixel of Green2 data. In various embodiments, depending on asensor configuration, average green values may be calculated based ongreen data on even rows or green data on odd rows. In the case of Bayerpattern image data or other appropriate mosaic image data, the 4neighboring pixels can be selected for one of the two green channels. Inone embodiment, a register can select whether Greens on the Red line(e.g., even line) will be used as a reference or if Green on a Blue row(e.g., odd line) will be used as a reference. By subtracting the kernelof Green 1 values from the current Green 2 value, and encoding theresidual, the Green 1 channel is effectively used as a predictor of theGreen 2 channel.

In an embodiment, when the target pixel is Green 2 pixel G_(m−1,n)(labeled 180), the four neighboring Green 1 pixels may includeG_(m−2,n−1), G_(m,n−1), G_(m,n+1), and G_(m−2,n+1) (labeled 181, 182,183, and 184 respectively). In this example, it may be seen that, forBayer pattern image data, when the target pixel is a Green pixel, thefour closest neighboring pixels may be used as a kernel and may includeGreen pixels of the other channel (for example, Green 1 channel vs.Green 2 channel) immediately diagonally adjacent (for example,immediately adjacent, diagonally adjacent, spatially adjacent) to thetarget pixel, for example, the pixels diagonally opposite the Greentarget pixel. In one embodiment, only two of the diagonally adjacentGreen pixels are used as a kernel (e.g., pixel 181 and pixel 183, pixel184 and pixel 182). In both cases (i.e., where two diagonally opposingadjacent pixels are used or where all four diagonally adjacent pixelsare used), there is some degree of spatial colocation and spatialcorrelation between the pixels used in the calculation and the targetpixel, resulting in better results, e.g., results suitable for cinemaapplications. This can reduce or eliminate the occurrence of edgeexaggeration on color boundaries or other undesirable artifacts, whichmay occur where only a single Green pixel is used in the calculation, orwhere only pixels on one side of the Green pixel are employed in thecalculation, such as an embodiment where only pixel 181 and pixel 184are used, or only pixels 182 and 183 are employed. In some alternativeembodiments, only a single Green pixel is used in the calculation, oronly pixels from one side of the target pixel are used.

In various embodiments, and as mentioned above, an average green value(or green value calculated according to some other appropriatealgorithm) may be computed based on a kernel of Green pixels located afurther distance from the target pixel. Referring again to FIG. 17, forthe target Green 2 pixel 180 and as described above, selecting a kernelof Green 1 pixels located a first distance away from Green 2 pixel 180may include all Green 1 pixels contained within a first conceptualsquare box surrounding Green 2 pixel 180 and having an edge length ofthree pixels. This first conceptual square box includes Green 1 pixelsG_(m−2,n−1), G_(m,n−1), G_(m,n+1), and G_(m−2,n+1) (labeled 181, 182,183, and 184 respectively). Similarly, selecting a kernel of Green 1pixels located a second, further distance away from Green 2 pixel 180may include all Green 1 pixels contained within a second, largerconceptual square box surrounding Green 2 pixel 180 having an edgelength of seven pixels. This second conceptual square box includes, inaddition to the Green 1 pixels in the first conceptual box, Green 1pixels G_(m−2,n−3), G_(m,n−3), G_(m+2,n−3), G_(m+2,n−1), G_(m+2,n+1),G_(m+2,n+3), G_(m,n+3), G_(m−2,n+3), and four additional Green 1 pixelsnot shown (but that would be present in a column m−4 if shown). Thissecond conceptual box is the next largest square box surrounding thetarget Green 2 pixel that includes additional Green 1 pixels. In variousembodiments, similar to the description above, any combination of Green1 pixels in the second conceptual box surrounding the target Green 2pixel may be selected as a kernel. For example, in an embodiment Green 1pixels located along one or both diagonals from the target pixel may beused as a kernel. As described above, an average green value of theselected kernel of Green 1 pixels neighboring the target Green 2 pixel(or vice versa) may be computed. This value may be subtracted from thevalue of the target Green 2 pixel to determine a residual, and theresidual may be encoded. Accordingly, the Green 1 channel mayeffectively be used as a predictor of the Green 2 channel.

Similarly, in various embodiments an average green value with respect toa Red and/or Blue target pixel may be computed based on neighboringGreen pixels located a further distance from the target pixel (ratherthan, or in addition to, the Green pixels immediately adjacent to thetarget pixel). For example, referring again to FIG. 3, when the targetpixel is the Red pixel R_(m,n), an average green value may be computedbased on, for example, any combination of Green pixels G_(m+1,n−2),G_(m+2,n−1), G_(m+2,n+1), G_(m+1,n+2), G_(m−1,n+2), G_(m−2,n+1),G_(m−2,n−1), and/or G_(m−1,n−2), either alone or in addition to theGreen pixels mentioned above. In some cases, additional Green pixelsfurther from the target pixel may be also be used (e.g., G_(m+3,n),G_(m−3,n), G_(m,n−3), G_(m,n+3)). Similarly, when the target pixel isthe Blue pixel B_(m−1,n−1), an average green value may be computed basedon, for example, any combination of Green pixels G_(m,n−3), G_(m+1,n−2),G_(m+1,n), G_(m,n+1), G_(m−2,n+1), G_(m−3,n), G_(m−3,n−2), and/orG_(m−2,n−3), either alone or in addition to the Green pixels mentionedabove. In some cases, additional Green pixels further from the targetpixel may be also be used.

In various embodiments, once neighboring Green pixels are determined forany particular target pixel, an average green value may be determinedfor that target pixel as described above with referenced to FIGS. 9 and10 (among others). For example, an average value of the neighboringpixels may be computed and then subtracted from the value of the targetpixel. The process of determining an average green value for neighboringpixels and subtracting that average value from a target pixel may bereferred to as Green Average Subtraction (GAS).

As mentioned above, in various embodiments, green data modification(e.g., GAS) may be performed on both Red/Blue data and on Green2 (orGreen 1) data. FIG. 18 shows a flowchart 170 illustrating an image datatransformation technique that may be used with the system illustrated inFIG. 1, according to various embodiments. Flowchart 170 may represent acontrol routine stored in a memory device, such as the storage device24, or another storage device within the camera 10. Additionally, acentral processing unit (CPU) may be configured to execute the controlroutine. The flowchart 170 may include more or fewer blocks, and/or theblocks may be arranged in a different order than shown in FIG. 18.Certain aspects of the flowchart 170 may be similar to the flowcharts 50and 50′ of FIGS. 8 and 8A described above. Accordingly, certain detailsregarding flowchart 170 may be found above in the description above withrespect to FIGS. 8 and 8A, where applicable. For instance, while notshown in FIG. 18, the image processor 20 may pre-emphasize the data inthe manner described above. The pre-emphasis occurs before thetransformation of the red, blue, and/or Green 2 picture elements atblock 176 and/or the determination of the green average at block 174 insome embodiments. In some other implementations, the pre-emphasis occursafter the operations at blocks 174 and 176, but before application ofthe compression algorithm at block 178.

Referring to FIG. 18, at block 172 sensor data may be obtained by thecamera 10. At block 174, green values for use in green data modification(e.g., average green values) may be determined and/or computed for theRed, Blue, and/or Green2 pixels as described above. The calculated greenvalues may be computed based on Green1 data and/or Green1 and Green2data. For example, in an embodiment, GAS with respect to the Red/Bluepixels may be based on both Green1 and Green2 pixels, as describedabove. Further, GAS with respect to Green2 pixels may be based on Green1pixels. Alternatively, in an embodiment, GAS with respect to Red/Bluepixels may be based on a single green channel, for example, Green1. Invarious embodiments, green channel data may be denoised and/ordemosaiced before and or after GAS, as described herein.

At block 176, Red, Blue, and/or Green2 pixels may be transformed asdescribed above. Specifically, in an embodiment respective computedaverage green values may be subtracted from Red, Blue, and/or Green2pixel values. In various embodiments Red/Blue or Green2 pixels may betransformed first. For example, in an embodiment Red/Blue pixels arefirst transformed via GAS based on Green1 and Green2 pixel values,according to any of the methods described above. Then Green2 pixelvalues may be transformed via GAS based on Green1 pixel values. Inanother embodiment, Green1 pixel values may be used to transformRed/Blue and Green2 pixel values in any order and/or simultaneously. Inan embodiment, Green1 pixel values, or any combination of Green1 andGreen2 pixel values (for example, demosaiced green pixel values) may beused to transform Red/Blue pixels. At block 178, Red, Blue, and/or Greenchannels of data, GAS having been implemented, may be compressed, asdescribed above. Although the image data has been transformed (e.g., bythe subtraction of green image data), the transformation is reversible.Moreover, the compressed image data according to certain embodiments iscompressed raw image data. For example, the compressed raw data ismosaiced. Moreover, in various implementations, the compressed raw datacan be decompressed and then gamma processed, color corrected, tonallyprocessed and/or demosaiced using any process the user desires.

In an embodiment, GAS may be performed with respect to Green1data/pixels, rather than with respect to Green2 data/pixels (asdescribed above). In an embodiment, the camera 10 may support GASperformed with respect to either Green1 data and/or Green2 data. Invarious embodiments, other blocks may be included in flowchart 170. Forexample, as indicated, flowchart 170 may include a data block in whichthe image data is pre-emphasized (for example, similar to block 54 ofFIG. 8), and/or in which a look up table is applied (for example,similar to block 57 of FIG. 8A), among implementing other functions.

As described above, GAS with respect to a green channel, in addition toRed/Blue channels, may further improve compressibility of the image datawith little or no visual loss. In various embodiments, this furtherimproved compressibility is advantageously possible, at least in part,because the first green channel can be used to predict a second greenchannel and the first and second green channels may be spatiallycorrelated with one another. Accordingly, in an embodiment, subtractingthe first green channel data from the second green channel data may atleast partially spatially de-correlate the green image data (furtherreducing entropy and improving compressibility) and the difference, orresidual, may be encoded.

GAS at Bayer Borders

In various embodiments, GAS may be performed for pixels that lie atvarious edges of mosaiced image data, such as image data that ismosaiced according to a Bayer pattern color filter array. FIG. 19 showsan example of determining neighboring pixels for a green pixel at anedge of the Bayer pattern. In FIG. 19, the Green2 pixel G2 _(0,1) existsin the first column of the Bayer pattern, and accordingly no other Greenpixels exist to the left of pixel G2 _(0,1) (for example, the pixels indashed lines may be virtual pixels). Determining neighboring pixels withrespect to pixel G2 _(0,1) may be performed in various ways. Forexample, in one embodiment GAS (or other green data modification) may beperformed based on the values of the two neighboring pixels G1 _(1,0)and G1 _(1,2). In another embodiment that may be advantageous for easeof implementation in the camera, each of pixels G1 _(1,0) and G1 _(1,2)may be virtually mirrored, as shown in FIG. 19 with pixels G1 _(1,0)_(_)virtual and G1 _(1,2) _(_)virtual (shown in dashed lines). In thisembodiment GAS may be performed based on the values of the pixels G1_(1,0), G1 _(1,2), G1 _(1,0) _(_)virtual, and G1 _(1,2) _(_)virtual.Virtually mirroring of pixels may be implemented in hardware devicesand/or software instructions executed by a hardware processor.

Mirroring of pixel values for calculations of average green values atthe edges of the Bayer pattern may similarly, in various embodiments, beimplemented for Red/Blue pixels and for pixels in a first row, last row,first column, and/or last column. For example, referring to Table 1below:

-   -   When processing a first Bayer row, then Green1_01 may be        copied/mirrored for Green1_00 and Green1_11 for Green1_10.    -   When processing a last Bayer row, then Green1_00 may be        copied/mirrored for Green1_01 and Green1_10 for Green1_11.    -   When processing a first Bayer column, then Green1_10 may be        copied/mirrored for Green1_00 and Green1_11 for Green1_01.    -   When processing a last Bayer column, then Green1_00 may be        copied/mirrored for Green1_10 and Green1_01 for Green1_11.

TABLE 1 Green1_00 Green1_10 Green2 Green1_01 Green1_11

Green Average Subtraction may be applied on the Red/Blue data pathand/or Green2 data after a Pre-Emphasis function is applied to the imagedata in some embodiments (e.g., after block 54 of FIG. 8). In someembodiments, following GAS, Green channel data and the Red/Blue channeldata may be synchronized since the average green value from the Greendata path is used to perform Green Average Subtraction in the Red/BlueData path.

GAS Calculation

In an embodiment, image data may captured, processed, and stored with16-bit precision. For example, image sensor 18 and image processingmodule 20 (shown in FIG. 1) may capture and process 16-bit image data.In various embodiments, the image sensor 18 and image processing module20 may capture and process image data suitable for cinema applications,such as at least 12-bit, 13-bit, 14-bit, 15-bit, or 16-bit image data,or higher, although lower bit-depths can be employed in some cases(e.g., at least 10-bit or at least 11-bit image data). 16-bit precisionallows capture and storage of image data in which red, blue, and greendata (for example, color intensity data for each pixel) may range on ascale from 0-65,535. Accordingly, Green Average Subtraction on theRed/Blue and Green2 data paths may be implemented by first performing anaverage calculation on neighboring green pixels (as described above) todetermine a Green Average. For example, a Green1 Average calculation maybe defined as (Green1_00+Green1_01+Green1_10+Green1_11) >>2, where “>>2”indicates a left shift by two operation (causing a division by 4). Thena subtraction calculation may be implemented to subtract the averagevalue from the target pixel value. In an embodiment, following thesubtraction calculation the resulting value may be left shifted by onebit (to implement a divide by 2 operation), as follows:

RedBlue_GAS[15:0] = (RedBlue[15:0] − GreenAverage[15:0] + 2{circumflexover ( )}16) / 2; and Green2_GAS[15:0] = (Green2[15:0] −Green1Average[15:0] + 2{circumflex over ( )}16) / 2

In an embodiment, division by 2 in the RedBlue_GAS and Green2_GASoperations may bring the GAS data into the same dynamic range as theunmodified Green data (for example, Green1 data). The division operationmay be implemented as a logical shift by one bit and, in particularimplementations a one-half-bit loss of precision may be incurred duringthis step. In an embodiment, a one-half-bit loss of precision mayadvantageously enable for faster processing of image data and reducedbandwidth requirements. However, in some embodiments the GAS calculationmay be implemented such that there is no loss of precision. For example,an extra buffering bit may be added in the processing pipeline torepresent the RedBlue_GAS and Green2_GAS, and/or the RedBlue_GAS andGreen2_GAS may not be divided by 2.

In some embodiments, the RedBlue_GAS value and/or the Green2_GAS valuemay be calculated using one of the techniques described above, e.g., thetechniques described with respect to block 56 of FIGS. 8 and 8A and asshown and described with respect to FIGS. 9 and 10.

In various embodiments, inverse green data modification, which in thecase of Green Average Subtraction, is referred to herein as De-GAS, maybe used to reverse the effect of the green data modification transformthat was performed upstream in the Sensor Data Path. FIG. 20 shows aflowchart 200 of a control routine that may be used with the system ofFIG. 1 to De-GAS image data, according to various embodiments. Flowchart200 may represent a control routine stored in a memory device, such asthe storage device 24, or another storage device within the camera 10.Additionally, a central processing unit (CPU) may be configured toexecute the control routine. The flowchart 200 may include more or fewerblocks, and/or the blocks may be arranged in a different order thanshown in FIG. 20. Certain aspects of the flowchart 200 may be similar tothe flowcharts 60 and 60′ of FIGS. 12 and 12A described above.Accordingly, certain details regarding flowchart 200 may be found abovein the description above with respect to FIGS. 12 and 12A, whereapplicable.

At block 202, a decompression algorithm may be applied to the compressedand GASed image data (for example, similar to block 62 for flowchart60). At block 204 average green values may be calculated based on, forexample, Green1 and/or Green2 image data. For example, in an embodimentin which GAS has not been applied to the Green1 image data, Green1pixels neighboring the Green2 pixels may be determined and averages maybe calculated, as described above. At block 206, Green2 pixels may bereconstructed based on the calculated Green1 average values. Forexample, the Green1 average values may be added back into the Green2pixel data. At block 208, Red/Blue pixels may be reconstructed based onthe calculated Green1 average values and/or calculated Green1 and Green2average values. At block 209, the reconstructed image data may befiltered and/or denoised (as described above).

In various embodiments, additional blocks may be included in flowchart200. For example, Green1 and/or Green1 and Green2 image data may bedemosaiced, and/or Red/Blue image data may be demosaiced prior toreconstruction of the Red, Blue, and/or Green image data. In anotherexample, filtering and/or denoising may be applied to the image data atany point in the flowchart 200 (for example, as is shown in flowchartsof FIGS. 12 and 12A).

An example subsystem for reversing the GAS process is shown in FIG. 21.The subsystem of FIG. 21 may reside on the camera (e.g., in the playbackmodule 26) or in software (and/or hardware) executing in a separatecomputing device, depending on the implementation. As shown in FIG. 21,the subsystem may receive, at an Input Mux 210, input either from theSensor Data Path (shown as “From Frame Rate Conversion,” for example,during capture mode, e.g., as part of a monitoring function for liveviewing of captured image data) and/or from the Playback Path (forexample, during playback mode). Green Average Subtraction may bereversed, or the image data may be De-GASED, by adding the Green Averageback into the Red and Blue pixels in the case of RedBlue_DeGAS, andadding Green1 Average back into the Green2 pixels in the case ofGreen2_DeGAS. In an embodiment, the De-GAS process may be similar toGreen Average Subtraction except that the green average values may beadded to, instead of subtracted from, image pixel data. For example,green image data may be passed to Buffer 211 and then to Green Averagecalculation unit 212. The Green Average calculation unit 212 may outputa green average based on the Green1 values and/or the Green2 values, asdescribed above, to a De-GAS calculation unit 213. Further, the red/blueimage data may be passed to Buffer 214 and then to the De-GAScalculation unit 213. The De-GAS calculation unit 213 may calculate andoutput reconstructed values for the Red/Blue image data, while the GreenAverage calculation unit 212 may output reconstructed values for Greenimage data.

In an embodiment, arithmetic equation for De-GAS are as follows:

RedBlue_DeGAS[16:0] = RedBlue_GAS[16:0] * 2 + GreenAverage[16:0] −2{circumflex over ( )}16; and Green2_DeGAS[16:0] = Green2_GAS[16:0] *2 + Green1Average[16:0] − 2{circumflex over ( )}16

In various embodiments, the RAW path in the Record/Monitor Pre-Processmay work on GAS data while a separate RGB path (not shown) may utilizenon-GAS data for processing.

Sensor Flip

In some embodiments, the default Bayer pattern is when red pixels occupythe first line of frame. According to certain embodiments, the termsensor flip denotes when Bayer pattern is such that blue pixels occupythe first line of the frame. When this happens, the algorithm for GASand De-GAS may change. For example, for a given red or blue pixel, thelocations of the 4 neighbor green pixels may differ between the twobayer patterns, as described above.

According to various embodiments, additional software may not be neededto implement a sensor flip mode. The sensor flip may be automaticallydetermined by using the register Bayer programming of the demosaicblock. As such, no additional programming may be necessary.

Additional Embodiments

According to various embodiments, Green Average Subtraction, asimplemented on the Red/Blue and Green channels described above,advantageously enables significant improvements in compressibility ofthe resulting image data with little or no loss of image information.For example, implementing GAS, as described above, on raw image data mayenable processing, compression, and/or storage of the raw image data ina lossy manner (e.g., at compression ratios of at least 3, 4, 5, 6, 7,8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 to 1, or higher), but withlittle or no visual loss, where the image data is visually lossless orsubstantially visually lossless upon decompression and playback. In anembodiment, the systems and methods of green data modification (e.g.,GAS) involving modification of green data, such as in addition to greendata modification on the red and blue data may enable greater than adoubling of compression efficiency (as compared to lossless compressionefficiency without GAS on green image channels).

Thus, in accordance with an embodiment, a video camera can comprise aportable housing, and a lens assembly supported by the housing andconfigured to focus light. A light sensitive device can be configured toconvert the focused light into raw image data with a resolution of atleast 2 k (or at least about 4 k depending on the embodiment), at aframe rate of at least about twenty-three frames per second. The cameracan also include a memory device and an image processing systemconfigured to compress and store in the memory device the compressed rawimage data using lossy compression (e.g., at a compression ratio of atleast 2:1, 3:1, 4:1, or 5:1) and remain substantially visually lossless,and at a rate of at least about 23 frames per second.

In accordance with yet another embodiment, a video camera can comprise aportable housing having at least one handle configured to allow a userto manipulate the orientation with respect to at least one degree ofmovement of the housing during a video recording operation of thecamera. A lens assembly can comprise at least one lens supported by thehousing and configured to focus light at a plane disposed inside thehousing. A light sensitive device can be configured to convert thefocused light into raw image data with a horizontal resolution of atleast 2 k (or, in some embodiments, at least 4 k) and at a frame rate ofat least about twenty three frames per second. A memory device can alsobe configured to store video image data. An image processing system canbe configured to compress and store in the memory device the raw imagedata at a compression ratio of at least six to one and remainsubstantially visually lossless, and at a rate of at least about 23frames per second.

Depending on the embodiment, certain acts, events, or functions of anyof the algorithms, methods, or processes described herein can beperformed in a different sequence, can be added, merged, or left out alltogether (e.g., not all described acts or events are necessary for thepractice of the algorithms). Moreover, in certain embodiments, acts orevents can be performed concurrently, e.g., through multi-threadedprocessing, interrupt processing, or multiple processors or processorcores or on other parallel architectures, rather than sequentially.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements and/or states. Thus, suchconditional language is not generally intended to imply that features,elements and/or states are in any way required for one or moreembodiments or that one or more embodiments necessarily include logicfor deciding, with or without author input or prompting, whether thesefeatures, elements and/or states are included or are to be performed inany particular embodiment. The terms “comprising,” “including,”“having,” and the like are synonymous and are used inclusively, in anopen-ended fashion, and do not exclude additional elements, features,acts, operations, and so forth. Also, the term “or” is used in itsinclusive sense (and not in its exclusive sense) so that when used, forexample, to connect a list of elements, the term “or” means one, some,or all of the elements in the list. In addition, the articles “a” and“an” are to be construed to mean “one or more” or “at least one” unlessspecified otherwise.

Conjunctive language such as the phrase “at least one of X, Y and Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to convey that an item, term, etc. may beeither X, Y or Z. Thus, such conjunctive language is not generallyintended to imply that certain embodiments require at least one of X, atleast one of Y and at least one of Z to each be present.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. Thus, nothing inthe foregoing description is intended to imply that any particularfeature, characteristic, step, module, or block is necessary orindispensable. As will be recognized, the processes described herein canbe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features can be used or practicedseparately from others. The scope of protection is defined by theappended claims rather than by the foregoing description.

What is claimed is:
 1. A method of compressing mosaiced color imagedata, comprising: acquiring mosaiced color image data by one or moreimage sensors of a video camera, the mosaiced color image datacomprising a plurality of picture element values for each of a pluralityof spatially interleaved color channels, the spatially interleaved colorchannels comprising a first green color channel, a second green colorchannel, a red color channel, and a blue color channel; transforming thesecond green color channel of the mosaiced color image data to generatetransformed mosaiced color image data, wherein transforming the secondgreen color channel comprises: for each respective picture element of aplurality of picture elements of the second green color channel,modifying an initial value corresponding to the respective pictureelement using a calculated value derived from values of a plurality ofpicture elements of the first green color channel that are in spatialproximity to the respective picture element; compressing the transformedmosaiced color image data to generate compressed mosaiced color imagedata; and storing the compressed mosaiced color image data in at leastone memory device of the video camera, the compressed mosaiced colorimage data including compressed versions of the first green colorchannel, the red color channel, the blue color channel, and the secondgreen color channel that has been transformed.
 2. The method of claim 1,wherein transforming the second green color channel further comprises:subtracting the calculated value from the initial value.
 3. The methodof claim 2, wherein the calculated value comprises an average of thevalues of the plurality of picture elements of the first green colorchannel that are in spatial proximity to the respective picture element.4. The method of claim 3, wherein the plurality of picture elements ofthe first green color channel in spatial proximity to the respectivepicture element comprise at least two picture elements which arediagonally adjacent to the respective picture element.
 5. The method ofclaim 4, wherein the at least two picture elements include four pictureelements of the first green color channel which are diagonally adjacentto the respective picture element.
 6. The method of claim 1, wherein theplurality of picture elements of the first green color channel which arein spatial proximity to the respective picture element include at leasttwo picture elements, further wherein the respective picture element ispositioned between the at least two picture elements.
 7. The method ofclaim 6, wherein the at least two picture elements include two pictureelements which are diagonally opposite one another with respect to therespective picture element.
 8. The method of claim 7, wherein the atleast two picture elements include a first pair of picture elementswhich are diagonally opposite one another with respect to the respectivepicture element and a second pair of picture elements which arediagonally opposite one another with respect to the respective pictureelement.
 9. The method of claim 7, wherein the at least two pictureelements are diagonally adjacent to the respective picture element. 10.The method of claim 1, wherein the plurality of picture elements of thefirst green color which are in spatial proximity to the respectivepicture element include at least three picture elements.
 11. The methodof claim 1, wherein the mosaiced color image data is mosaiced accordingto a Bayer pattern.
 12. The method of claim 1, wherein transforming thesecond green color channel results in a spatial decorrelation of thefirst green color channel from the second green color channel.
 13. Themethod of claim 1, wherein compressing the transformed mosaiced colorimage data comprises: compressing each of the first green color channel,the second green color channel that has been transformed, the red colorchannel, and the blue color channel.
 14. The method of claim 1, furthercomprising: transforming the red color channel of the mosaiced colorimage data by subtracting, from respective picture element values of thered color channel, a calculated value derived from picture elementvalues of one or more of the first green color channel and the secondgreen color channel which are in spatial proximity to the respectivepicture element values of the red color channel; and transforming theblue color channel of the mosaiced color image data by subtracting fromrespective picture element values of the blue color channel a calculatedvalue derived from picture element values of one or more of the firstgreen color channel and the second green color channel which are inspatial proximity to the respective picture element values of the bluecolor channel, wherein compressing the transformed mosaiced color imagedata comprises: compressing the red color channel that has beentransformed, compressing the blue color channel that has beentransformed, compressing the first green color channel, and compressingthe second green color channel that has been transformed.
 15. The methodof claim 14, wherein: transforming the red color channel results in aspatial decorrelation of first green color channel from the red colorchannel, and transforming the blue color channel results in a spatialdecorrelation of first green color channel from the blue color channel.16. A video camera, comprising: at least one memory device; one or moreimage sensors configured to convert light incident on the image sensorinto mosaiced color image data, the mosaiced color image data mosaicedaccording to a pattern and comprising a plurality of picture elementvalues for each of a plurality of spatially interleaved color channels,the spatially interleaved color channels comprising a first green colorchannel, a second green color channel, a red color channel, and a bluecolor channel; and a hardware image processor configured with executableinstructions to: transform the second green color channel of themosaiced color image data to generate transformed mosaiced color imagedata, wherein transforming the second green color channel comprises: foreach respective picture element of a plurality of picture elements ofthe second green color channel, modifying an initial value correspondingto the respective picture element using a calculated value derived fromvalues of a plurality of picture elements of the first green colorchannel that are in spatial proximity to the respective picture element;compress the transformed mosaiced color image data to generatecompressed mosaiced color image data; and store the compressed mosaicedcolor image data in the memory device, the compressed mosaiced colorimage data including the second green color channel that has beentransformed.
 17. An apparatus for processing mosaiced color image data,comprising: at least one memory device; and one or more hardwareprocessors configured with executable instructions to: access mosaicedcolor image data from the memory device, the mosaiced color image dataacquired by one or more image sensors of a video camera and comprising aplurality of picture element values for each of a plurality of spatiallyinterleaved color channels, the spatially interleaved color channelscomprising a first green color channel, a second green color channel, ared color channel, and a blue color channel; and transform the secondgreen color channel of the mosaiced color image data to generatetransformed mosaiced color image data, wherein transforming the secondgreen color channel comprises: for each respective picture element of aplurality of picture elements of the second green color channel,modifying an initial value corresponding to the respective pictureelement using a calculated value derived from values of a plurality ofpicture elements of the first green color channel that are in spatialproximity to the respective picture element; and compress thetransformed mosaiced color image data to generate compressed mosaicedcolor image data, wherein the compressed mosaiced color image data canbe decompressed and demosaiced and includes the second green colorchannel that has been transformed.
 18. A method of decoding color imagedata, comprising: accessing encoded color image data, wherein: theencoded color image data was generated from mosaiced color image datainitially acquired by one or more image sensors of a video camera andincluding a first green color channel, a second green color channel, ared color channel, and a blue color channel, and the encoded color imagedata was encoded by one or more processors of the video camera at leastpartly by: transforming the second green color channel of the mosaicedcolor image data at least partly by, for each respective picture elementof a plurality of picture elements of the second green color channel,modifying an initial value corresponding to the respective pictureelement using a calculated value derived from values of a plurality ofpicture elements of the first green color channel of the plurality ofcolor channels, the plurality of picture elements of the first greenchannel in spatial proximity to the respective picture element, andcompressing the transformed mosaiced second green color channel; anddecoding the encoded color image data to reproduce the second greencolor channel that has been transformed.
 19. The method of claim 18,wherein decoding the encoded color image data comprises substantiallyreversing the transform operation and performing a decompressionoperation.
 20. The method of claim 19, wherein substantially reversingthe transform operation is performed after performing the decompressionoperation.
 21. The method of claim 19, wherein substantially reversingthe transform operation is performed prior to performing thedecompression operation.